# <imperatum> Техническое задание

[up to parent doc](../../../README.md)

## Ограничения на код

- bash со стандартными утилитами
- CLI интерфейс управления
- Данные только в текстовых файлах, логика только в файлах bash

## Ограничения на файловые структуры

- фиксированый набор директорий и файлов в определенных местах
- генерация структур plt только plt_fn

## Ограничения процесса разработки

- тесты перед загрузкой в git не должны изменять состояние рабочей директории ( если  )
- если вылетает ошибка - открыть новый экземпляр оболочки
- есть тип повторяющихся неустранимых ошибок - если есть возможность продолжить процесс дальше - документируем и следим за поведением ошибки

## Набор решаемых задач 

- загрузка PLT в bash при запуске
- управлеие загрузкой множества repo from/in bare
- процедуры before/after git action (для git add тоже)
- файловые структуры с поиском по тегам, кратким содержанием, основным контентом (тип .arb)
- вставка кода - сниппеты
- `$ plt2tst__` запуск теста plt_fn из списка return (0|1)
- plt_fn функции должны быть:
  - в поиске тип .arb
  - действия по вызову plt_fn со стандартными аргументами:
    - `plt_fn -h` [stdout help info]
    - `plt_fn _tst` selftest [ return (0|1) ]
    - `plt_fn _mdeb` исследование поведения (запуск меню выбора вариантов скриптов с использованием plt_fn)

[up to README.md](../../../README.md) 